home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / iutil / create_btree.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-01-23  |  1.1 KB  |  51 lines

  1. #include    <btree.h>
  2. #include    <ingres.h>
  3. #include    <aux.h>
  4. #include     <sccs.h>
  5.  
  6. SCCSID(@(#)create_btree.c    8.2    1/18/85)
  7.  
  8. /*    CREATE_BTREE -- creates a new B-Tree
  9. **
  10. **    Creates an empty B-Tree whose root is an empty leaf.  The B-Tree
  11. **     filename is the relation name with "TREE" concatenated to the end
  12. **    of the name.
  13. **
  14. **    Parameters:
  15. **        relname - relation name (I)
  16. */
  17.  
  18. create_btree(relname)
  19. char *relname;
  20.  
  21. {
  22.     struct BTreeNode    root;
  23.     register int        i;
  24.     extern int        Btree_fd;
  25.  
  26.     root.depth = 1;
  27.     root.prevtree = root.nexttree = 0l;
  28.     bmove(&root.prevtree, &root.prttree, LIDSIZE);
  29.     /* the root is initially an empty leaf node */
  30.     root.nodetype = 'L';
  31.     root.nelmts = 0;
  32.     root.parent = 0;    /* '0' indicates no other empty pages in file */
  33.  
  34.     root.node.leafnode.prevleaf = 0;
  35.     root.node.leafnode.nextleaf = 0;
  36.  
  37.     for (i = 0; i< MAXLEAVES; ++i)
  38.         root.node.leafnode.tid_loc[i] = root.node.leafnode.back_ptr[i] = i;
  39.  
  40.     close(creat(relname, FILEMODE));
  41.     if ((Btree_fd = open(relname, O_RDWR)) < 0)
  42.         syserr("create_btree: can't open %s", relname);
  43.     write_node(RT, &root);
  44.  
  45. #    ifdef xATR1
  46.     if (tTf(24, 0))
  47.         printf("creating btree %s", relname);
  48. #    endif
  49.  
  50. }
  51.